import os


def unlinks(symlink_path):
    try:
        os.unlink(symlink_path)
        print(f"符号链接 '{symlink_path}' 已成功删除。")
    except OSError as e:
        print(f"删除符号链接时出错: {e}")


def create_folder_symbolic_links(source_dir, target_dir):
    """
    遍历源目录下的所有文件夹，并在目标目录中创建对应的符号链接

    Args:
        source_dir (str): 源目录路径
        target_dir (str): 目标目录路径（符号链接创建的位置）
    """
    # 检查源目录是否存在
    if not os.path.exists(source_dir):
        print(f"错误：源目录 '{source_dir}' 不存在")
        return False

    # 创建目标目录（如果不存在）
    if not os.path.exists(target_dir):
        try:
            os.makedirs(target_dir)
            print(f"已创建目标目录：{target_dir}")
        except OSError as e:
            print(f"创建目标目录失败：{e}")
            return False

    # 获取源目录下的所有项目
    try:
        items = os.listdir(source_dir)
    except OSError as e:
        print(f"无法读取源目录内容：{e}")
        return False

    # 计数器
    success_count = 0
    skip_count = 0
    error_count = 0

    # 遍历所有项目，只处理文件夹
    for item in items:
        item_path = os.path.join(source_dir, item)

        # 只处理文件夹，忽略文件
        if os.path.isdir(item_path):
            link_path = os.path.join(target_dir, item)

            # 检查是否已存在同名链接或文件
            if os.path.exists(link_path):
                print(f"跳过 '{item}'：目标路径已存在")
                skip_count += 1
                continue

            try:
                # 创建符号链接
                os.symlink(item_path, link_path, target_is_directory=True)
                print(f"成功创建链接：{item} -> {link_path}")
                success_count += 1
            except OSError as e:
                print(f"创建链接失败 '{item}'：{e}")
                error_count += 1
        else:
            # 忽略文件，只统计文件夹
            skip_count += 1

    # 输出统计信息
    print(f"\n操作完成：成功 {success_count} 个，跳过 {skip_count} 个，失败 {error_count} 个")
    return True


def main():
    """主函数：解析命令行参数并执行创建链接的操作"""
    # parser = argparse.ArgumentParser(description='为指定目录下的所有文件夹创建符号链接')
    # parser.add_argument('source_dir', help='源目录路径（要创建链接的文件夹所在目录）')
    # parser.add_argument('target_dir', help='目标目录路径（链接文件创建的位置）')
    #
    # args = parser.parse_args()
    # source_dir = r"\\diskstation2\8192G_01\goodsync"
    source_dir = r"E:\btbbt_data"
    target_dir = r"E:\Shortcuts"
    # args.source_dir = r"E:\btbbt_data"
    # args.target_dir = r"E:\ttt"
    # print("开始创建文件夹符号链接...")
    # print(f"源目录：{args.source_dir}")
    # print(f"目标目录：{args.target_dir}")
    # print("-" * 50)

    # create_folder_symbolic_links(source_dir, target_dir)
    unlinks(r"E:\Shortcuts\_gsdata_")

if __name__ == "__main__":
    main()